The invention relates to programmable logic devices (PLDS). More particularly, the invention relates to an interconnect multiplexer for a PLD that includes transistors having more than one oxide thickness.
Programmable logic devices (PLDs) are a well-known type of digital integrated circuit that can be programmed to perform specified logic functions. One type of PLD, the field programmable gate array (FPGA), typically includes an array of configurable logic blocks (CLBs) and programmable input/output blocks (IOBs). The CLBs and IOBs are interconnected by a programmable interconnect structure.
More advanced FPGAs can include more than one type of logic block in the array. For example, the Xilinx Virtex-II Pro(trademark) FPGA includes blocks of Random Access Memory (RAM), blocks implementing multiplier functions, and embedded processor blocks. (The Xilinx Virtex-II Pro FPGA is described in detail in pages 19-71 of the xe2x80x9cVirtex-II Pro Platform FPGA Handbookxe2x80x9d, published October, 2002, available from Xilinx, Inc., 2100 Logic Drive, San Jose, Calif. 95124, which pages are incorporated herein by reference.)
The CLBs, IOBs, interconnect, and other logic blocks are typically programmed by loading a stream of configuration data (bitstream) into internal configuration memory cells that define how the CLBs, IOBs, and interconnect are configured. The configuration data can be read from memory (e.g., an external PROM) or written into the FPGA by an external device. The collective states of the individual memory cells then determine the function of the FPGA.
The programmable interconnect structure typically includes a large number of interconnect lines of various lengths interconnected by programmable interconnect points (PIPs). These PIPs are controlled by configuration memory cells. Thus, the values stored in the PIP configuration memory cells determine the xe2x80x9croutingxe2x80x9d, i.e., the interconnections between various points in the FPGA. PIPs can also be used to select a signal from one of several interconnect lines and to pass the selected signal to a CLB, for example, or to select one of several output signals from a CLB to pass to an interconnect line.
A PIP can be implemented in various ways. For example, a set of PIPs can be implemented as a multiplexer structure that selects one of several interconnect lines and drives a signal on the selected interconnect line onto a destination interconnect line. One such set of PIPs is shown in FIG. 1.
As shown in FIG. 1, multiplexer structure 100 includes eight input terminals driven by eight input signals IN0-IN7. (In the present specification, the same reference characters are used to refer to terminals, signal lines, and their corresponding signals.) Each signal passes through an N-channel transistor T0-T7 controlled by an associated configuration memory cell M0-M7. Each configuration memory cell Mx includes, for example, a pair of cross-coupled inverters A, B, with inverter B driving the associated transistor T0-T7. Two pass transistors d1, d2 allow the configuration logic (not shown) to access the memory cell. Based on the data stored in memory cells M0-M7, one of signals IN0-IN7 is selected and passed to internal signal INT. Internal signal INT is passed to buffer 101, which provides output signal OUT at an output terminal of the multiplexer structure.
FIG. 1 illustrates one well-known implementation 101x of buffer 101. Buffer 101x includes two inverters coupled in series. The first inverter includes P-channel transistor P1 (the pullup) and N-channel transistor N1 (the pulldown), coupled in series between power high VDD and ground GND. Optional second inverter I2 can increase the performance of the buffer and ensures that the output signal OUT has the same sense as the input signal INT. P-channel transistor P2 is driven by the node N between the two inverters, and acts to pull node INT up to VDD such that pullup P1 is fully turned off. Optional P-channel transistor P3 is used to initialize node INT to a high value, for example during reset or power-up of the FPGA.
The structure shown in FIG. 1 works well at sufficiently high values of VDD (power high, or the operating voltage of the FPGA). For example, for many years VDD was standardized at 5 volts (5 V), plus or minus ten percent (10%). (The ten percent allowable variation was included in the specifications of each device to allow for normal deviations in manufacturing and operation.) However, operating voltages are being steadily reduced both to save power and to meet the requirements of smaller and smaller transistors. For example, a transistor with a thinner oxide layer breaks down at a lower gate voltage than a transistor with a thicker oxide layer. Thus, values of VDD have been reduced to 2.5 V, 1.8 V, and even as low as 1.5 V. A VDD value of 1.2 V is now contemplated, and at these low voltage levels the structure of FIG. 1 might no longer be adequate, as is now described in conjunction with FIG. 2.
When a high value is passed through an N-channel transistor, the voltage is reduced by Vt, the threshold voltage level of the N-channel transistor. (For purposes of simplifying the present discussion, other well-known transistor effects such as the body effect are not described.) For example, FIG. 2 shows an input signal IN passing through transistor T (which is driven by VDD) to internal node INT. Internal node INT drives buffer 201, which provides the output signal OUT. When input signal IN is at the same voltage level as VDD, the voltage at internal node INT is the gate voltage reduced by one threshold voltage (VINT=VDDxe2x88x92Vt).
This well-known limitation presents no problem when VDD=5 V, as described above. When processes supporting this operating voltage are used, the N-channel threshold voltage is less than one volt (1 V). Thus, the voltage at internal node INT is still more than four volts (4 V), which is quite sufficient to turn on the N-channel pulldown N1, thus turning on P-channel pullup P2 in buffer 201 (see FIG. 1). However, at sufficiently low levels of VDD, the voltage at internal node INT is so low as to impair the performance of the circuit.
For example, if node INT does not rise sufficiently high, the N-channel pulldown in buffer 201 might not be completely on, and the P-channel pullup P2 might not be sufficiently on to quickly turn off pullup P1. Thus, the pullup (e.g., pullup P1) xe2x80x9cfightsxe2x80x9d the pulldown (e.g., pulldown N1), and slows down the switching of the output node. For example, referring again to FIG. 1, while P-channel transistor P2 helps in raising node INT to VDD once node N goes low, transistor P2 is no help if node N does not go low enough to turn it on.
As described, there is a voltage drop when a high voltage is passed across an N-channel transistor. However, there is no corresponding voltage drop of a high voltage across a P-channel transistor. Therefore, one solution to this problem is to replace the N-channel transistor with paired N- and P-channel transistors, with the P-channel transistors being driven by the complementary input signal. However, this solution can double the size of the multiplexer by doubling the number of pass transistors. Further, both the true and complement signals must be provided to the paired transistors, which increases the die area. Larger buffers must also be provided to handle the increased load of driving both the N- and P-channel transistors.
Another way to accommodate lower VDD levels is to drive the gates of the N-channel transistors with a voltage level VGG higher than VDD, as shown in FIG. 3 and Table 1. In this case, the voltage level after passing a high value VDD through the N-channel transistor T is the gate voltage VGG minus the N-channel threshold voltage Vt, or VINT=VGGxe2x88x92Vt. voltage level VGG is often specified for an FPGA, where VGG is the maximum voltage that can safely be applied to the gate of a transistor in the device. The VGG voltage level is at least partially determined by the oxide thickness of the transistor. Generally speaking, the thicker the layer of oxide over the transistor, the higher the voltage level that can be applied to the gate without damaging the transistor. Additionally, the maximum operating voltage level is generally determined by the total area of gate oxide exposed to the operating voltage. Therefore, the VGG used for a portion of the transistors in an integrated circuit can be higher than the VDD applied to the majority of transistors. Additionally, the longer the gate length (channel length) of the transistor, the less leakage current (i.e., off state current) occurs across the transistor from source to drain. Therefore, up to an intrinsic limit, the longer the gate length, the higher the voltage level that can be applied across the source and drain of the transistor without producing an unacceptably high leakage current.
However, FPGA manufacturers are not only reducing operating voltage levels on their devices, but are also reducing minimum feature sizes to lower costs. Sometimes, each new product generation uses a lower operating voltage and has reduced feature sizes. Reduced feature sizes mean thinner oxide and shorter gate lengths. Therefore, specified values of VGG are being rapidly reduced. For example, Table 1 shows the relationships between various exemplary values of VDD (the operating voltage), VGG (the maximum allowable gate voltage), Vt (the N-channel threshold voltage), and VINT (the voltage at node INT). Also included are typical gate lengths for each manufacturing process. All of the values shown in Table 1 are merely exemplary, as they vary between processes and manufacturers. VDD values are specified as nominal operating voltages.
Note that as VGG approaches twice the threshold voltage (VGG=2Vt), the voltage at node INT becomes insufficient to adequately turn on pulldown N1 (see FIG. 1). Therefore, it is desirable to provide alternative structures for implementing PIPs in FPGAs that can accommodate a lower operating voltage and smaller feature sizes than known structures. It is further desirable to provide multiplexers having the same characteristics that can be used for any purpose in other integrated circuits.
The invention provides a multiplexer structure that can be used, for example, in the programmable interconnect points (PIPs) of a programmable logic device (PLD). The structure includes transistors of varying oxide thickness, operating voltage, and, in some embodiments, gate length.
The multiplexer includes a plurality of pass transistors passing a selected one of several input values to an internal node, which drives a buffer providing the multiplexer output signal. The pass transistors can be controlled, for example, by values stored in memory cells of a PLD. The pass transistors have a first oxide thickness and are controlled by a value having a first operating voltage. The buffer includes transistors having a second oxide thickness thinner than the first oxide thickness, and operates at a second operating voltage lower than the first operating voltage. In some embodiments, the second operating voltage is the operating voltage used as a supply voltage by a majority of the transistors in the PLD. Where memory cells are used to control the pass transistors, the memory cells operate at the first operating voltage and include transistors having the first oxide thickness.
In some embodiments, the gate length also varies between the pass transistors, buffer transistors, and memory cell transistors. To support the higher operating voltage with acceptable leakage, the memory cells have the longest gate length. The buffer transistors, on the other hand, operate at the lower voltage (with thinner oxide) and can have the shortest gate length without generating unacceptable leakage current. The pass transistors are gated by the higher voltage and thus require the thicker oxide. However, the drain-to-source voltage for the pass transistors is less than the higher operating voltage, so the gate length of the pass transistors can be somewhere between the longest and shortest gate lengths without generating unacceptable leakage current.
In other embodiments, the pass transistors and memory cell transistors have a first and longer gate length, while the buffer transistors have a second and shorter gate length. In yet other embodiments, the gate lengths are the same for the pass transistors, buffer transistors, and memory cell transistors.
According to some embodiments, a multiplexer structure in an integrated circuit (IC) includes a plurality of pass transistors coupled between a plurality of input terminals and an internal node, and a buffer coupled between the internal node and an output terminal. Each of the pass transistors has a gate terminal coupled to provide to the pass transistor a selected one of a ground signal and a power high signal at a first voltage level. Each of the pass transistors has a first oxide thickness. The buffer is coupled to an operating voltage at a second voltage level less than the first voltage level. The buffer comprises buffer transistors having a second oxide thickness, where the second oxide thickness is less than the first oxide thickness. In some embodiments, the multiplexer structure also includes a plurality of memory cells controlling the pass transistors, operating at the first voltage level, and having the first oxide thickness.
In some embodiments, the IC is a PLD such as a field programmable gate array (FPGA). In some such embodiments, the multiplexer structure is used to implement programmable interconnect points (PIPS ) in the FPGA. In other embodiments, the IC is a non-programmable integrated circuit.
According to some embodiments, a circuit comprises a pass transistor coupled between an input terminal and an internal node and a buffer coupled between the internal node and an output terminal. The pass transistor has a first oxide thickness and a gate terminal coupled to provide to the pass transistor a selected one of a ground signal and a power high signal at a first voltage level. The buffer comprises buffer transistors having a second oxide thickness less than the first oxide thickness, and is coupled to an operating voltage at a second voltage level less than the first voltage level. In some embodiments, the circuit also includes a memory cell controlling the pass transistor, operating at the first voltage level, and having the first oxide thickness.
According to some embodiments, an interconnect structure for a PLD includes a plurality of interconnect lines and a first plurality of PIPs coupled between the interconnect lines. Each of the first plurality of PIPs comprises a plurality of input terminals coupled to a subset of the interconnect lines and an output terminal coupled to one of the interconnect lines. Each set of PIPs is implemented in a manner substantially similar to the multiplexer structure as described above.
According to some embodiments, an FPGA comprises a plurality of configurable logic blocks, a plurality of interconnect lines, and a plurality of PIPs coupled between the interconnect lines and the configurable logic blocks. Each set of PIPs is implemented in a manner substantially similar to the multiplexer structure as described above.